﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using Ninject;
using SignalR.Hubs;

namespace VideoChat.Models
{
    public static class C
    {
        public const string MAIN_CHAT_GROUP = "MAIN";
    }

    public enum VideoState
    {
        NOT_WORK = 0,
        SOUND = 1,
        VIDEO = 2,
        SOUND_VIDEO = 3
    }

    public interface IUsersStore
    {
        bool Exists(string key);
        void Add(IUser user);
        void Remove(string key);

        IList<IUser> GetList();

        bool CheckFlooder(string key);
        void SaveMessage(ChatMessage message);
        void SaveRoomInfo(RoomModel model);
        RoomModel GetRoomInfo(string key);
        void CloseRoom(string chatKey);

        IList<ChatMessage> GetChatHistory(string roomKey);
        void CloseRoom(string roomKey, string userKey, VideoState state);
        void SaveRoomState(string roomKey, string key, bool isCam, bool isCamOn, bool isMic, bool isMicOn);
    }

    public interface IUser
    {
        string Key { get; set; }
        string Name { get; set; }
    }


}